home *** CD-ROM | disk | FTP | other *** search
- Hercules Graphics Adapter
-
- 3B0h synonym for 3B4h
-
- 3B1h synonym for 3B5h
-
- 3B2h synonym for 3B4h
-
- 3B3h synonym for 3B5h
-
-
- 3B4h (W): Index register.
- The value written to this register selects which of the data
- registers will be accessed at 3B5h.
-
- 3B4h index 00h (W): Horizontal Total Register
- Bit 0-7 Number of characters (-1) in a scan line incl. retrace.
-
- 3B4h index 01h (W): Horizontal Displayed Register
- Bit 0-7 Number of characters (-1) displayed during a scan line.
-
- 3Bh index 02h (W): Horizontal Sync Position Register
- Bit 0-7 Number of characters displayed before Horizontal Sync pulse starts.
-
- 3B4h index 03h (W): Horizontal Sync Width Register
- Bit 0-7 Number of character clocks during a Horizontal Sync pulse.
-
- 3B4h index 04h (W): Vertical Total Register
- Bit 0-6 Number of character rows in a frame. This is adjusted by the number
- of scanlines in a character (index 9) and the Vertical Adjust (index
- 5).
-
- 3B4h index 05h (W): Vertical Total Adjust Register
- Bit 0-3 Number of scanlines added to the Vertical Total time.
-
- 3B4h index 06h (W): Vertical Displayed Register
- Bit 0-6 Number of character rows displayed per frame.
-
- 3B4h index 07h (W): Vertical SyncPosition Register
- Bit 0-6 Number of character rows displayed before the Vertical Sync pulse
- starts.
-
- 3B4h index 08h (W): Interlace Mode Register
-
- 3B4h index 09h (W): Maximum Scan Line Register
- Bit 0-3 Number of scanlines (-1) in a character row.
-
- 3B4h index 0Ah (W): Cursor Start Register
- Bit 0-4 The scanline (starting from 0) within the character where the
- cursor starts.
- 5-6 Cursor Attributes:
- 0,2: Cursor is blinking at the blink rate.
- 1: Cursor is turned off.
- 3: Cursor is blinking at half the blink rate.
- The default blink rate is 1/16 of the frame rate (8 frames on, 8
- off).
-
- 3B4h index 0Bh (W): Cursor End Register
- Bit 0-4 The scanline (starting from 0) within the character where the
- cursor ends. If the start position (index 0Ah) is larger than this
- value, no cursor is shown.
-
- 3B4h index 0Ch (W): Start Address High Register
- Bit 0-5 The upper 6 bits of the address of the start of the display.
- The lower 8 bits are in index 0Dh.
-
- 3B4h index 0Dh (W): Start Address Low Register
- Bit 0-7 The lower 8 bits of the address of the start of the display.
- The upper 6 bits are in index 0Ch.
-
- 3B4h index 0Eh (W): Cursor Location High Register
- Bit 0-5 The upper 6 bits of the address of the start of the cursor.
- The lower 8 bits are in index 0Fh.
-
- 3B4h index 0Fh (W): Cursor Location Low Register
- Bit 0-7 The lower 8 bits of the address of the start of the cursor.
- The upper 6 bits are in index 0Eh.
-
- 3B4h index 10h (W): Light Pen High Register
- Bit 0-5 The upper 6 bits of the latched address of the lightpen strobe.
- The lower 8 bits are in index 11h.
-
- 3B4h index 11h (W): Light Pen Low Register
- Bit 0-7 The lower 8 bits of the latched address of the lightpen strobe.
- The upper 6 bits are in index 10h.
-
-
-
- 3B8h (W): Display Mode Control Register
- bit 1 Hercules graphics mode if set, text mode else
- 3 Video enabled if set
- 5 Blink enabled if set
- 7 Graphics page 1 displayed if set, page 0 else
-
- 3BAh (R): Status Register
- bit 0 Horizontal sync
- 3 Video signal
- 7 Vertical sync
-
- 3BAh (W): Mode Select Register
- bit 3 132-column text for monochrome
-
- 3BBh (W): Lightpen Strobe Reset
- Writing to this register will clear the lightpen strobe.
-
- 3BFh (W):
- bit 0 Setting of graphics mode bit (3B8h bit 1) enabled if set
- 1 Setting of graphics page bit (3B8h bit 7) enabled if set
-
-
- ID Hercules Graphics Card:
-
- old:=rdinx($3B4,$a);
- outp($3B5,6); {Change Cursor End}
- for x:=1 to 50 do; {Wait for CRTC to respond}
- val:=inp($3B5);
- outp($3B5,old);
- if val=6 then
- begin
- x:=50000;
- repeat
- dec(x);
- y:=inp($3BA);
- until (y and $80)=0) or (x=0);
- if x=0 then __MDA__
- else
- case y and $70 of
- $50:Hercules Incolor;
- $10:Hercules Graphics Plus
- else Hercules Graphics Card;
- end;
- end;
-